home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / CIS-FC11.ZIP / PAGE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-08-22  |  4KB  |  285 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     String   STRING001
  26.     String   STRING002
  27.     String   STRING003
  28.     String   STRING004
  29.     String   STRING005
  30.     String   STRING006
  31.     String   STRING007
  32.     String   STRING008
  33.     String   STRING009
  34.     String   STRING010
  35.     String   STRING011
  36.     String   STRING012
  37.     Time     TIME001
  38.     Time     TIME002
  39.     Time     TIME003
  40.  
  41. ;------------------------------------------------------------------------------
  42.  
  43.     TIME001 = Time()
  44.     TIME002 = ReadLine(PCBDat(), 189)
  45.     TIME003 = ReadLine(PCBDat(), 190)
  46.     INTEGER005 = S2I(ReadLine(PPEPath() + "page.cnf", 4), 10)
  47.     STRING011 = Lower(ReadLine(PPEPath() + "page.cnf", 5))
  48.     If (Left(STRING011, 8) == "override") Then
  49.         If (Mid(STRING011, 9, 2) == "on") Then
  50.             BOOLEAN001 = 0
  51.         Else
  52.             BOOLEAN001 = 1
  53.         Endif
  54.     Else
  55.         STRING004 = ReadLine(PPEPath() + "page.cnf", 5)
  56.         If (Right(STRING004, 1) == "\") Then
  57.             STRING004 = STRING004 + "pcboard.sys"
  58.         Else
  59.             STRING004 = STRING004 + "\pcboard.sys"
  60.         Endif
  61.         If (Mid(ReadLine(STRING004, 1), 6, 1) == "0") Then
  62.             BOOLEAN001 = 1
  63.         Else
  64.             BOOLEAN001 = 0
  65.         Endif
  66.     Endif
  67.     STRING006 = Chr(7)
  68.     STRING007 = Chr(13)
  69.     STRING008 = Chr(27) + "["
  70.     STRING009 = STRING008 + "0;0H"
  71.     STRING010 = STRING008 + "K"
  72.     Newline
  73.     InputStr "@X07" + ReadLine(PPEPath() + "page.cnf", 1), STRING005, 0, 60, Mask_Ascii(), 2 + 4096
  74.     If (STRING005 == "") End
  75.     Log "■ CiS FaDE CHAT iNiTiALiZED: " + STRING005, 0
  76.     Newline
  77.     If (((TIME001 >= TIME002) && (TIME001 <= TIME003)) || (CurSec() >= SysopSec())) Then
  78.         If ((CurSec() >= SysopSec()) || !PageStat()) Then
  79.             PageOn
  80.             Newline
  81.             DispStr ReadLine(PPEPath() + "page.cnf", 2)
  82.             STRING001 = ReadLine(PPEPath() + "page.cnf", 3)
  83.             Gosub LABEL006
  84.             For INTEGER003 = 1 To INTEGER005
  85.                 Print "."
  86.                 MPrint STRING006
  87.                 If (BOOLEAN001) Then
  88.                     Delay 14
  89.                     Goto LABEL003
  90.                 Endif
  91.                 INTEGER004 = 600
  92.                 :LABEL001
  93.                 STRING012 = KInkey()
  94.                 If (STRING012 <> "") Goto LABEL002
  95.                 Sound INTEGER004
  96.                 STRING012 = KInkey()
  97.                 If (STRING012 <> "") Goto LABEL002
  98.                 Sound INTEGER004 + 5
  99.                 STRING012 = KInkey()
  100.                 If (STRING012 <> "") Goto LABEL002
  101.                 Sound INTEGER004 + 10
  102.                 STRING012 = KInkey()
  103.                 If (STRING012 <> "") Goto LABEL002
  104.                 Sound INTEGER004 + 15
  105.                 STRING012 = KInkey()
  106.                 If (STRING012 <> "") Goto LABEL002
  107.                 Sound INTEGER004 + 20
  108.                 STRING012 = KInkey()
  109.                 If (STRING012 <> "") Goto LABEL002
  110.                 Sound INTEGER004 + 15
  111.                 STRING012 = KInkey()
  112.                 If (STRING012 <> "") Goto LABEL002
  113.                 Sound INTEGER004 + 10
  114.                 STRING012 = KInkey()
  115.                 If (STRING012 <> "") Goto LABEL002
  116.                 Sound INTEGER004 + 5
  117.                 STRING012 = KInkey()
  118.                 If (STRING012 <> "") Goto LABEL002
  119.                 Sound INTEGER004
  120.                 STRING012 = KInkey()
  121.                 If (STRING012 <> "") Goto LABEL002
  122.                 Sound INTEGER004 - 2
  123.                 STRING012 = KInkey()
  124.                 If (STRING012 <> "") Goto LABEL002
  125.                 Sound INTEGER004 - 5
  126.                 STRING012 = KInkey()
  127.                 If (STRING012 <> "") Goto LABEL002
  128.                 Sound INTEGER004 - 2
  129.                 STRING012 = KInkey()
  130.                 If (STRING012 <> "") Goto LABEL002
  131.                 Sound INTEGER004 - 1
  132.                 STRING012 = KInkey()
  133.                 If (STRING012 <> "") Goto LABEL002
  134.                 Sound INTEGER004
  135.                 Goto LABEL001
  136.                 :LABEL002
  137.                 Sound 0
  138.                 Delay 9
  139.                 :LABEL003
  140.                 STRING003 = KInkey()
  141.                 If (STRING003 == " ") Then
  142.                     STRING001 = ""
  143.                     Gosub LABEL006
  144.                     Call PPEPath() + "fchat.ppe"
  145.                     PageOff
  146.                     End
  147.                     Goto LABEL004
  148.                 Endif
  149.                 If (STRING003 == Chr(13)) Then
  150.                     BOOLEAN001 = 1
  151.                 Endif
  152.                 :LABEL004
  153.                 If (Abort()) INTEGER003 = INTEGER005 + 1
  154.                 If (!PageStat()) End
  155.             Next
  156.             STRING001 = ""
  157.             Gosub LABEL006
  158.             If (Abort()) Then
  159.                 ResetDisp
  160.                 Newline
  161.                 End
  162.                 Goto LABEL005
  163.             Endif
  164.             Newline
  165.         Endif
  166.     Endif
  167.     :LABEL005
  168.     PageOn
  169.     DispText 128, 128 + 64
  170.     STRING002 = NoChar()
  171.     PromptStr 571, STRING002, 1, "", 16384 + 64 + 256 + 2 + 8
  172.     If (STRING002 == YesChar()) KbdStuff "C" + STRING007 + "Y" + STRING007
  173.     End
  174.     :LABEL006
  175.     INTEGER001 = GetX()
  176.     INTEGER002 = GetY()
  177.     SPrint STRING009, STRING010
  178.     SPrint STRING001
  179.     SPrint STRING008 + String(INTEGER002) + ";" + String(INTEGER001) + "H"
  180.     Return
  181.  
  182. ;------------------------------------------------------------------------------
  183. ;
  184. ; Usage report (before postprocessing)
  185. ;
  186. ; ■ Statements used :
  187. ;
  188. ;    5       End
  189. ;    34      Goto 
  190. ;    43      Let 
  191. ;    1       Print 
  192. ;    29      If 
  193. ;    1       ResetDisp
  194. ;    1       Log 
  195. ;    1       InputStr 
  196. ;    3       Gosub 
  197. ;    1       Return
  198. ;    1       PromptStr 
  199. ;    2       Delay 
  200. ;    5       Newline
  201. ;    1       DispText 
  202. ;    1       KbdStuff 
  203. ;    1       Call 
  204. ;    1       DispStr 
  205. ;    15      Sound 
  206. ;    3       SPrint 
  207. ;    1       MPrint 
  208. ;    2       PageOn
  209. ;    1       PageOff
  210. ;
  211. ;
  212. ; ■ Functions used :
  213. ;
  214. ;    36      +
  215. ;    4       -
  216. ;    8       ==
  217. ;    14      <>
  218. ;    1       <
  219. ;    2       <=
  220. ;    5       >=
  221. ;    13      !
  222. ;    3       &&
  223. ;    3       ||
  224. ;    1       Lower()
  225. ;    2       Mid()
  226. ;    1       Left()
  227. ;    1       Right()
  228. ;    4       Chr()
  229. ;    2       Abort()
  230. ;    1       Time()
  231. ;    1       NoChar()
  232. ;    1       YesChar()
  233. ;    2       String()
  234. ;    1       Mask_Ascii()
  235. ;    2       PCBDat()
  236. ;    7       PPEPath()
  237. ;    9       ReadLine()
  238. ;    2       SysopSec()
  239. ;    2       CurSec()
  240. ;    1       S2I()
  241. ;    1       GetX()
  242. ;    1       GetY()
  243. ;    15      KInkey()
  244. ;    2       PageStat()
  245. ;
  246. ;------------------------------------------------------------------------------
  247. ;
  248. ; Analysis flags : MCds
  249. ;
  250. ; M - Send text to modem only ■ 4
  251. ;     Some informations are sent only to the modem, not to the local
  252. ;     screen, this is a well known way to make stealth backdoors, Check!
  253. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  254. ;
  255. ; C - Call child PPE ■ 3
  256. ;     This is usually normal, but may be a tricky way to launch some
  257. ;     sysop-only commands.
  258. ;     ■ Search for : CALL
  259. ;
  260. ; d - Access PCBOARD.DAT ■ 2
  261. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  262. ;     for many PPE so they can find various informations on the system
  263. ;     (system paths, max number of lines in messages, ...) but it may also
  264. ;     be a way to gather vital informations.
  265. ;     ■ Search for : PCBDAT()
  266. ;
  267. ; s - Sysop level access ■ 5
  268. ;     Program is reading the sysop access level, this may be normal
  269. ;     but still it is very suspect. It is the best way to give a user
  270. ;     all priviledges. Check!
  271. ;     ■ Search for : SYSOPSEC()
  272. ;
  273. ;------------------------------------------------------------------------------
  274. ;
  275. ; Postprocessing report
  276. ;
  277. ;    1       For/Next
  278. ;    0       While/EndWhile
  279. ;    10      If/Then or If/Then/Else
  280. ;    0       Select Case
  281. ;
  282. ;------------------------------------------------------------------------------
  283. ;                 AEGiS Corp - Break the routines, code against the machines!
  284. ;------------------------------------------------------------------------------
  285.